#ifndef __Collections_IComparer_H__
#define __Collections_IComparer_H__

///<summary>
/// IComparer<T>
///</summary>
#define Collections_IComparer(T) bindT(Collections_IComparer,T)
#define Declare_Collections_IComparer(T, Ti) \
	private enum { \
		_Collections_IComparer_##T##VIndex_Compare, \
		_Collections_IComparer_##T##VIndexNext, \
	}; \
	public interfaceT(Collections_IComparer,T,, \
		virtualT(Collections_IComparer,T,int_,Compare, Ti x, Ti y); \
	);
#define Implement_Collections_IComparer(T, Ti) \
	Implement_TypeTI(Collections_IComparer,T,)

#endif /* __Collections_IComparer_H__ */